import { DomUtils } from "../utils/DomUtils";

/**
 * ### 3DM网页美化
 * 
 * 测试网页：
 * - https://bbs.3dmgame.com/thread-6059199-1-1.html
 * - https://bbs.3dmgame.com/forum.php?mod=viewthread&tid=1435617
 * - https://bbs.3dmgame.com/forum.php?mod=viewthread&tid=6060433
 */
export class DM3 {

    static hostname = 'bbs.3dmgame.com';

    main() {
        DomUtils.hide([
            // 顶部header
            'table.hd_table',
            // header下方的广告
            '.wp.a_h',
            // 搜索输入框和导航栏
            '#hd',
            // 页面路径导航
            '#pt',
            // "发帖" 按钮
            '#pgt',
            // 帖子标题右边的"复制链接"、"上一主题"、"下一主题"按钮
            ...document.querySelectorAll('.vwthd > :not(h1)'),
            // 右下角的广告关闭按钮
            '.a_cn',
            // 左侧侧边栏
            ...document.querySelectorAll('.pls'),
            // 文章下面的登录提示
            '.attach_tips',
            // 文章下面的收藏按钮
            '#p_btn',
            // 收藏按钮下面的"回复"和"举报"按钮
            '.pob.cl',
            // 文章下面的"发新帖"按钮
            document.querySelector('#newspecialtmp')?.parentElement,
            // 评论输入框
            '#f_pst',
            // 页脚
            '#ft',
            // 所有的图片广告
            ...document.querySelectorAll('.a_pt'),
            // 帖子中的图片广告
            ...document.querySelectorAll('div[id^="_matter_"]'),
            // 帖子中的网站首页导航图片广告
            ...document.querySelectorAll('img[src*="bbs.3dmgame.com"]'),
        ]);
        DomUtils.setBackground();
        // 文章居中
        DomUtils.setCss('#wp', { width: '900px', margin: '20px auto', borderRadius: '10px', overflow: 'hidden' });
        DomUtils.setCss('#ct', { padding: '20px 10px 0' });
        // 标题字体放大
        DomUtils.setCss('h1.ts', {  fontSize: '24px', margin: '20px 0' });
        // 去除帖子边框
        DomUtils.setCss('#postlist', { border: 'none' });
        // 去除帖子回复的楼层下边距
        document.querySelectorAll('img[src*="bbs.3dmgame.com"]').forEach(item => {
            item.parentElement.parentElement.style.paddingBottom = '0';
        });
    }
}